جزوه · فصل ششم · جلسه ۶۶ · تنظیم زمان و چاپگر ← بازگشت به فهرست
📘 فصل ششم · جلسه ۶۶ تنظیم زمان و چاپگر
📅 تاریخ: یکشنبه، ۱ شهریور ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian (کالی) · 📦 Red Hat
این جلسه یکی از مباحث مهم در LPIC (بخش ۱۰۴ و ۱۰۶) است. دستورات زمان (date, hwclock, timedatectl) و مدیریت چاپگر (CUPS) حتماً سوال می‌آید.
🕐 قبل از شروع، یه مثال ساده:

فرض کن ساعت مچی داری که گاهی جلو یا عقب می‌افته. باید وقتش رو درست کنی. توی لینوکس هم همینطوره! سیستم‌ها هم زمان دارند (ساعت سخت‌افاری و سیستمی). توی این جلسه یاد می‌گیری چطور زمان رو تنظیم کنی، با سرورهای زمان هماهنگ کنی و حتی چاپگر رو راه‌اندازی کنی!

▍ زمان در لینوکس

در لینوکس، زمان بر اساس مبداء زمانی (Epoch) محاسبه می‌شود که ۱۹۷۰/۰۱/۰۱ است. این مبداء در تمام سیستم‌های یونیکس مشترک است.

🔑 سه مفهوم اصلی زمان در لینوکس:
  • منطقه زمانی (Timezone): تنظیمات مربوط به منطقه زمانی (مثل Asia/Tehran).
  • سرور زمان (Time Server): سرورهایی که زمان دقیق را از طریق شبکه ارائه می‌دهند.
  • پروتکل NTP (Network Time Protocol): پروتکل هماهنگ‌سازی زمان با سرورهای زمان.
نکته مهم: دستور time برای نمایش زمان نیست! این دستور برای اندازه‌گیری زمان اجرای یک برنامه استفاده می‌شود.

▍ نمایش زمان

• زمان سیستمی با date

date زمان جاری سیستم را نمایش می‌دهد.

┌──(ya3in㉿kali)-[~] └─$ date Sun Aug 24 14:30:45 +0330 2025

توضیح: زمان سیستم را با فرمت کامل نمایش می‌دهد.

┌──(ya3in㉿kali)-[~] └─$ date "+%Y-%m-%d %H:%M:%S" 2025-08-24 14:30:45

توضیح: نمایش زمان با فرمت سفارشی (سال-ماه-روز ساعت:دقیقه:ثانیه).

date زمان سیستمی را نشان می‌دهد، نه زمان سخت‌افاری.

• زمان سخت‌افاری با hwclock

hwclock زمان سخت‌افاری (RTC - Real Time Clock) را نمایش می‌دهد.

┌──(ya3in㉿kali)-[~] └─$ hwclock 2025-08-24 14:30:45.123456+0330

توضیح: زمان ذخیره‌شده روی مادربرد (باتری CMOS) را نمایش می‌دهد.

تفاوت date و hwclock:
  • date → زمان سیستمی (قابل تغییر توسط کاربر)
  • hwclock → زمان سخت‌افاری (ذخیره شده روی مادربرد)

▍ تنظیم زمان با timedatectl

timedatectl ابزار مدرن و جامع برای مدیریت زمان و منطقه زمانی در سیستم‌های با systemd است.

• نمایش وضعیت زمان

┌──(ya3in㉿kali)-[~] └─$ timedatectl Local time: Sun 2025-08-24 14:30:45 +0330 Universal time: Sun 2025-08-24 11:00:45 UTC RTC time: Sun 2025-08-24 14:30:45 Time zone: Asia/Tehran (+0330, +0330) System clock synchronized: yes NTP service: active RTC in local TZ: no

توضیح: این خروجی اطلاعات کاملی درباره زمان سیستم، منطقه زمانی و وضعیت NTP نشان می‌دهد.

• تغییر منطقه زمانی

┌──(ya3in㉿kali)-[~] └─$ sudo timedatectl set-timezone Asia/Tehran

توضیح: منطقه زمانی را به تهران تغییر می‌دهد.

برای دیدن لیست مناطق زمانی موجود، از دستور timedatectl list-timezones استفاده کنید.

• فعال‌سازی NTP

┌──(ya3in㉿kali)-[~] └─$ sudo timedatectl set-ntp true

توضیح: هماهنگ‌سازی خودکار زمان با سرورهای NTP را فعال می‌کند.

▍ مدیریت چاپگر با CUPS

CUPS (Common UNIX Printing System) سیستم مدیریت چاپ در لینوکس است. با استفاده از CUPS می‌توانید چاپگرها را شناسایی، پیکربندی و مدیریت کنید.

• نصب CUPS

┌──(ya3in㉿kali)-[~] └─$ sudo apt install cups

توضیح: نصب CUPS روی دبیان/کالی.

┌──(user㉿almalinux)-[~] └─$ sudo dnf install cups

توضیح: نصب CUPS روی رد هت (AlmaLinux).

• راه‌اندازی سرویس CUPS

┌──(ya3in㉿kali)-[~] └─$ sudo systemctl enable --now cups

توضیح: فعال‌سازی و راه‌اندازی سرویس CUPS.

• دسترسی به رابط وب CUPS

CUPS دارای یک رابط کاربری وب است که از طریق مرورگر قابل دسترسی است.

http://127.0.0.1:631/

توضیح: با وارد کردن این آدرس در مرورگر، می‌توانید چاپگرها را مدیریت کنید.

پورت پیش‌فرض CUPS: 631 (HTTP)

• دستورات مدیریت چاپ در خط فرمان

دستور توضیح
lpstat -p نمایش وضعیت چاپگرها
lpstat -a نمایش همه چاپگرهای موجود
lpadmin -p printer_name -E فعال‌سازی یک چاپگر
lp -d printer_name file.txt چاپ یک فایل روی چاپگر مشخص
cancel job_id لغو یک کار چاپ
دستورات مهم CUPS:
  • lpstat → مشاهده وضعیت چاپگرها
  • lp → ارسال فایل به چاپگر
  • cancel → لغو کار چاپ

▍ خلاصه دستورات

دستور کاربرد
date نمایش زمان سیستمی
hwclock نمایش زمان سخت‌افاری
timedatectl مدیریت زمان و منطقه زمانی
timedatectl set-timezone Asia/Tehran تغییر منطقه زمانی به تهران
timedatectl set-ntp true فعال‌سازی NTP
lpstat -p وضعیت چاپگرها
lp -d printer file.txt چاپ فایل
http://127.0.0.1:631/ رابط وب CUPS
✅ جمع‌بندی نهایی برای امتحان:
  • مبداء زمان: ۱۹۷۰/۰۱/۰۱
  • date: نمایش زمان سیستمی
  • hwclock: نمایش زمان سخت‌افاری
  • timedatectl: مدیریت زمان (منطقه زمانی، NTP)
  • CUPS: سیستم مدیریت چاپ در لینوکس
  • پورت CUPS: 631
  • دستورات CUPS: lpstat, lp, cancel